# immutable var,改变了变量的值等于新建一个对象，对于相同的值对象，在内存中只有一个地址
# int float decimal complex bool string tuple range frozenset bytes
ivar1 = 3
print(id(ivar1))
ivar2 = 4
print(id(ivar2))
ivar3 = 3
print(id(ivar1))

# mutable var,改变了变量的值，而不会新建一个对象，变量引用的对象的地址也不会变化
# 对于相同的值的不同对象，在内存中则会存在不同的对象，即每个对象都有自己的地址
# list dict set bytearray user-defined classes
lvar1 = []
print(id(lvar1))
lvar1.append(3)
print(id(lvar1))
lvar2 = []
print(id(lvar2))
lvar2.append(3)
print(id(lvar2))
